// pages/inquiry/subject.js
const app = getApp();
const moment = require('../../utils/moment')
const util = require('../../utils/util')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    propertyType: '',
    name: '',
    area: '',
    description: '',
    fields: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 动态设置标题
    let { type } = options
    if(type==2){
      // 新增建筑评估对象
      wx.setNavigationBarTitle({
        title: '新增建筑评估对象',
      })
    }else if(type==102){
      // 新增土地评估对象
      wx.setNavigationBarTitle({
        title: '新增土地评估对象',
      })
    }
    this.setData({ propertyType: type })

    // 获取该类型的自定义字段列表
    this.getFieldList();
  },

  // 修改输入的数值
  changName(e){
    let { type } = e.currentTarget.dataset
    let { value } = e.detail
    this.data[type] = value;
    this.setData({})
  },

  // 自定义字段输入值
  changInputValue(e){
    let { index } = e.currentTarget.dataset
    let { value } = e.detail
    let fields = this.data.fields.map((item,findex)=>{
      if(findex==index){
        if(item.valueType==0){
          item.decimalValue = Number(value)
        }
        if(item.valueType==2){
          item.stringValue = value
        }
      }
      return item
    })
    this.setData({ fields })
  },

  //提交表单
  submitForm(){
    let { name, area, description, fields, propertyType } = this.data;
    fields = fields.map(item=>{
      let params = {
        fieldId: item.id
      }
      if(item.valueType==0){ //数字
        params.decimalValue = item.decimalValue
      }
      if(item.valueType==1||item.valueType==3){ //日期 布尔
        params.longValue = item.longValue
      }
      if(item.valueType==2){ //字符串
        params.stringValue = item.stringValue
      }
      if(item.valueType==4){ //单选下拉
        params.enumItemName = item.enumItemName
      }
      return params
    })
    let temp = {
      name, area,  description, fields, propertyType
    }
    let params = util.transUrlData(temp)
    app.request({
      url: '/subject/create' + params,
      success: r=>{
        if(r.code==0){
          let pages = getCurrentPages();
          let prevPage = pages[pages.length-2];
          let subjectIds = prevPage.data.subjectIds;
          subjectIds.push({ id: r.data, name })
          prevPage.setData({ subjectIds })
          setTimeout(()=>{
            wx.navigateBack({
              delta: 1  //想要返回的层级
            })
          },500)
        }
      }
    })
  },

  //单选赋值
  radioChange(e){
    let { index } = e.currentTarget.dataset; //判定是第几位
    let { value } = e.detail;
    let fields = this.data.fields.map((item,findex)=>{
      if(findex==index){
        item.longValue = Number(value)
      }
      return item
    })
    this.setData({ fields })
  },

  //日期赋值
  bindDateChange(e){
    console.log(e)
    let { index } = e.currentTarget.dataset; //判定是第几位
    let { value } = e.detail;  //选项第几个
    let fields = this.data.fields.map((item,findex)=>{
      if(findex==index){
        item.longValue = moment(value).valueOf();//转成13位时间戳
        item.time = value
      }
      return item
    })
    this.setData({ fields })
  },

  // 下拉数值赋值
  bindPickerChange(e){
    let { index } = e.currentTarget.dataset; //判定是第几位
    let { value } = e.detail;  //选项第几个
    let fields = this.data.fields.map((item,findex)=>{
      if(findex==index){
        item.enumItemName = item.relatedEnum.items[value].name
      }
      return item
    })
    this.setData({ fields })
  },

  // 获取自定义字段列表
  getFieldList(){
    app.request({
      url: '/field/getList?objectType=8&pageCount=999&templateFlag=0&propertyType=' + this.data.propertyType,
      success: r=>{
        let fields = r.data.list.map(item=>{
          if(item.valueType==3){
            //如果是单选,默认值为1
            item.longValue = 0;
          }
          return item;
        })
        this.setData({fields})
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})